const { Controller } = require('egg');

class AdminLoginController extends Controller {

  async login() {
    const { ctx } = this;
    try {
      const { username, password } = ctx.request.body;

      const result = await this.app.model.Admin.findOne({
        where: {
          username,
          password,
        },
      });
      console.log(result);
      // 数据库查到的与前台传过来的进行比较，如果不对则不生成token
      if (result) {
        const token = ctx.app.jwt.sign({ username, password }, ctx.app.config.jwt.secret, { expiresIn: '1h' }); // token签名有效期1个小时;
        ctx.body = {
          code: 0,
          msg: '登陆成功',
          data: result,
          token,
        };
      } else {
        ctx.body = {
          code: 1, // 登陆失败
          msg: '密码或账号错误，请重试',
        };
      }
    } catch (error) {
      ctx.body = {
        code: 1,
        message: '用户验证失败,请重新获取token',
      };
    }
  }
  // 用户登录
  async userLogin() {
    const { ctx } = this;
    try {
      const { username, password } = ctx.request.body;
      const result = await this.app.model.User.findOne({
        where: {
          username,
          password,
        },
        // ,attributes: [ 'username', 'password' ],
      });
      // 数据库查到的与前台传过来的进行比较，如果不对则不生成token
      if (result) {
        const token = ctx.app.jwt.sign({ username, password }, ctx.app.config.jwt.secret, { expiresIn: '1h' });
        ctx.body = {
          code: 0,
          msg: '登陆成功',
          data: result,
          token,
        };
      } else {
        ctx.body = {
          code: 1, // 登陆失败
          msg: '密码或账号错误，请重试',
        };
      }
    } catch (error) {
      ctx.body = {
        code: 1,
        msg: '用户验证失败,请重新获取token',
      };
    }
  }
}


module.exports = AdminLoginController;
